home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 5
/
Skunkware 5.iso
/
src
/
X11
/
mpeg_play-2.1
/
check-shift.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-05-09
|
898b
|
41 lines
/*
code "borrowed" from JPEG-5 config code
*/
#include <stdio.h>
int is_shifting_signed (arg)
long arg;
/* See whether right-shift on a long is signed or not. */
{
long res = arg >> 4;
if (res == -0x7F7E80CL) { /* expected result for signed shift */
return 1; /* right shift is signed */
}
/* see if unsigned-shift hack will fix it. */
/* we can't just test exact value since it depends on width of long... */
res |= (~0L) << (32-4);
if (res == -0x7F7E80CL) { /* expected result now? */
return 0; /* right shift is unsigned */
}
fprintf(stderr, "Right shift isn't acting as I expect it to.\n");
fprintf(stderr, "I fear the DCT software will not work at all.\n\n");
exit(1);
}
main()
{
if (is_shifting_signed(-0x7F7E80B1L)) {
printf("do not define RIGHT_SHIFT_IS_UNSIGNED\n");
}
else {
printf("define RIGHT_SHIFT_IS_UNSIGNED\n");
}
}